home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / Explodes.AMOS / Explodes.amosSourceCode
Encoding:
AMOS Source Code  |  1992-12-07  |  1.6 KB  |  69 lines

  1. ANZTR=59 : ANZEX=29
  2. Dim TR(ANZTR-1,6),EX(ANZEX-1,4)
  3. Global TR(),EX(),ANZTR,ANZEX
  4. Screen Open 0,320,200,16,0
  5. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  6. For A=0 To 7 : Colour A,A*$200+Max(A-3,0)*$20 : Next 
  7. Double Buffer 
  8. Autoback 0
  9. Do 
  10.   Screen Swap : Wait Vbl 
  11.   Cls 
  12.   MOVECHUNKS
  13.   ANIEXPLS
  14.   X=X Mouse-128 : Y=Y Mouse-50 : M=Mouse Key
  15.   If M=0 and P=1 Then P=0
  16.   If M and P=0 Then EXLODE1[X,Y,5,5] : EXLODE2[X,Y,5,5] : P=1
  17.   DRACHUNKS
  18.   DRAEXPLS
  19. Loop 
  20. Procedure ANIEXPLS
  21.   For A=0 To ANZEX-1
  22.     If EX(A,3)<0 Then Dec EX(A,2) Else Dec EX(A,3)
  23.   Next 
  24. End Proc
  25. Procedure DRAEXPLS
  26.   For A=0 To ANZEX-1
  27.     If EX(A,3)<0 and EX(A,2)>1 Then Ink EX(A,2)/2+1 : Circle EX(A,0),EX(A,1),EX(A,2)-1
  28.   Next 
  29. End Proc
  30. Procedure MOVECHUNKS
  31.   Ink 0
  32.   For A=0 To ANZTR-1
  33.     If TR(A,6)
  34.       Add TR(A,0),TR(A,2),0 To 319 : Add TR(A,1),TR(A,3),0 To 199
  35.       Dec TR(A,6)
  36.     End If 
  37.   Next 
  38. End Proc
  39. Procedure DRACHUNKS
  40.   For A=0 To ANZTR-1
  41.     If TR(A,6)>1 Then Ink TR(A,4) : Circle TR(A,0),TR(A,1),TR(A,5)
  42.   Next 
  43. End Proc
  44. Procedure EXLODE1[X,Y,R,ANZ]
  45.   For A=0 To ANZTR-1
  46.     If TR(A,6)<1
  47.       TR(A,4)=1+Rnd(15)
  48.       TR(A,0)=X+Rnd(R*2)-R
  49.       TR(A,1)=Y+Rnd(R*2)-R
  50.       TR(A,6)=Rnd(25)+10
  51.       Repeat 
  52.         TR(A,2)=Rnd(6)-3 : TR(A,3)=Rnd(6)-3
  53.       Until TR(A,2) and TR(A,3)
  54.       TR(A,5)=(Abs(TR(A,2))+Abs(TR(A,3)))/2
  55.       Dec ANZ : Exit If ANZ=0
  56.     End If 
  57.   Next 
  58. End Proc
  59. Procedure EXLODE2[X,Y,R,ANZ]
  60.   For A=0 To ANZEX-1
  61.     If EX(A,2)<1
  62.       EX(A,0)=X+Rnd(R*2)-R
  63.       EX(A,1)=Y+Rnd(R*2)-R
  64.       EX(A,2)=Rnd(10)+3
  65.       EX(A,3)=(10-EX(A,2))/2+Rnd(4)
  66.       Dec ANZ : Exit If ANZ=0
  67.     End If 
  68.   Next 
  69. End Proc